package Package.Example.Predicates;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Predicate;

public class Prediccates {
    public static  void Prediccates(){
//1.9Predicate接口练习之筛选满足条件数据【应用】
//练习描述
//String[] strArray = {"林青霞,30", "柳岩,34", "张曼玉,35", "貂蝉,31", "王祖贤,33"};
//字符串数组中有多条信息，请通过Predicate接口的拼装将符合要求的字符串筛选到集合ArrayList中，并
//遍历ArrayList集合
//同时满足如下要求：姓名长度大于2；年龄大于33
//分析
//有两个判断条件,所以需要使用两个Predicate接口,对条件进行判断
//必须同时满足两个条件,所以可以使用and方法连接两个判断条件
        String[] strArray = {"林青霞,30", "柳岩,34", "张曼玉,35", "貂蝉,31", "王祖贤,33"};
        ArrayList<String> array=new ArrayList<String>();
        Map<String,Integer> map=new HashMap<String, Integer>();
        for ( String s:strArray){
            boolean b=Checking(s,S->{
                String name=S.split(",")[0];
                return name.length()>2;
            },S->{
                int age= Integer.parseInt(S.split(",")[1]);
                System.out.println(age);
                return age>33;
            });
            System.out.println(b);
            if (b==true){
                String name=s.split(",")[0];
                int age= Integer.parseInt(s.split(",")[1]);
                String s1=name+","+age;
                array.add(s1);
            }

        }
        System.out.println(array);
    }
    private static boolean Checking(String s, Predicate<String> Pre,Predicate<String> Pre1){
        return Pre.and(Pre1).test(s);
    }
}
